home *** CD-ROM | disk | FTP | other *** search
- public class BBSComp extends ComponentApp {
- DAssetManager cam;
- DDrawPicture cdp;
- int idScript;
- String Subdirectory;
- String Title;
- String UnixWindows;
- String PerlPath;
- boolean AdminTool;
- String codeBase;
- static int onlyYou;
- int onlyYouInvalid;
- static final int MAXASSET = 50;
- boolean published;
- int[] assetControl;
- int assetCount;
- int tAssetCount;
-
- public String PropertyListener(String var1, String var2, int var3, int var4, IDInspector var5) {
- if (var3 == 1) {
- if (var1.compareTo("Subdirectory") == 0) {
- return this.Subdirectory;
- }
-
- if (var1.compareTo("Page Title") == 0) {
- return this.Title;
- }
-
- if (var1.compareTo("Publish to") == 0) {
- if (this.UnixWindows.compareTo("Windows") == 0) {
- return "0";
- }
-
- if (this.UnixWindows.compareTo("Unix") == 0) {
- return "1";
- }
- } else if (var1.compareTo("Perl Path for Unix") == 0) {
- return this.PerlPath;
- }
- } else {
- if (var1.compareTo("Subdirectory") == 0) {
- this.Subdirectory = var2;
- } else if (var1.compareTo("Page Title") == 0) {
- this.Title = var2;
- } else if (var1.compareTo("Publish to") == 0) {
- if (var2.compareTo("0") == 0) {
- this.UnixWindows = "Windows";
- } else if (var2.compareTo("1") == 0) {
- this.UnixWindows = "Unix";
- }
- } else if (var1.compareTo("Perl Path for Unix") == 0) {
- this.PerlPath = var2;
- }
-
- this.cdp.setHTMLBefore("<a href=\"#\" target=_self onclick='launchBBS(\"" + this.Subdirectory + "\",\"" + this.Title + "\")'>");
- this.cdp.setHTMLAfter("</a>");
- }
-
- return "";
- }
-
- public void onCopy() {
- this.Subdirectory = new String(this.Subdirectory);
- this.Title = new String(this.Title);
- this.PerlPath = new String(this.PerlPath);
- this.codeBase = new String(this.codeBase);
- this.cam.CopyAsset(this.idScript);
- int[] var1 = new int[50];
-
- for(this.tAssetCount = 0; this.tAssetCount < this.assetCount; ++this.tAssetCount) {
- this.cam.CopyAsset(this.assetControl[this.tAssetCount]);
- var1[this.tAssetCount] = this.assetControl[this.tAssetCount];
- }
-
- this.assetControl = var1;
- }
-
- private String getJavaScript() {
- return "function newCookie(name, value){\n document.cookie = name + \"=\" + value + \"; path=/; domain=\" + location.hostname + \";\"; \n}\nfunction launchBBS(URL,Title){\n var direct = location.pathname; \n if((location.pathname.lastIndexOf(\"/\") + 1) == location.pathname.length){\t\n\t direct = location.pathname;\t \n\t }\t \n else{\t\n direct = location.pathname.substring(0,location.pathname.lastIndexOf(\"/\")) + \"/\";\t \n\t }\n if (direct.substring(direct.length - 5, direct.length - 1) == \"html\"){\n direct = direct.substring(0, direct.length - 6) + \"/\";\n } \n" + "if (location.port.length == 0){\n\tNURL= location.protocol+\"//\" + location.hostname + direct + URL + \"/\";\n }\n\t else {\n NURL= location.protocol+\"//\" + location.hostname + \":\" + location.port + direct + URL + \"/\";\n\t} \n var WinName = window.open(NURL+'index.html','netobjects_bbs','toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=1,copyhistory=0,width=800,height=600');\n if (navigator.appVersion.indexOf(\"(X11\") != -1 ||\n navigator.appVersion.indexOf(\"(Mac\") != -1)\n newWin = window.open(NURL+'index.html','netobjects_bbs');\nnewCookie(\"URL\",NURL);\nnewCookie(\"Title\",Title);\nnewCookie(\"CgiURL\",NURL+\"cgi-bin\");\nnewCookie(\"GifURL\",NURL+\"image/webforum.gif\");\n} \n";
- }
-
- public String onInstall(DAssetManager var1, String var2) {
- this.cam = var1;
- this.codeBase = var2;
- return "BBS";
- }
-
- protected void finalize() {
- this.cam.RemoveAsset(this.idScript);
- if (this.published) {
- for(this.assetCount = 0; this.assetCount < 50; ++this.assetCount) {
- this.cam.RemoveAsset(this.assetControl[this.assetCount]);
- }
- }
-
- if (this.onlyYouInvalid == 0) {
- onlyYou = 0;
- }
-
- }
-
- public void onPublish(DAssetManager var1, int var2) {
- this.cdp.setHTMLBefore("<a href=\"#\" target=_self onclick='launchBBS(\"" + this.Subdirectory + "\",\"" + this.Title + "\")'>");
- this.cdp.setHTMLAfter("</a>");
- String var3 = this.codeBase;
- if (this.published) {
- for(this.assetCount = 0; this.assetCount < 50; ++this.assetCount) {
- this.cam.RemoveAsset(this.assetControl[this.assetCount]);
- }
- }
-
- this.assetCount = 0;
- this.published = true;
- this.assetControl[this.assetCount] = this.cam.AddAsset(var3 + "bbs\\bbs-control.html", "HTML\u0000", this.Subdirectory);
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var3 + "bbs\\bbs-message.html", "HTML\u0000", this.Subdirectory);
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var3 + "bbs\\blank.html", "HTML\u0000", this.Subdirectory);
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var3 + "bbs\\index.html", "HTML\u0000", this.Subdirectory);
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var3 + "bbs\\image\\dot24_clear.gif", "Image\u0000", this.Subdirectory + "\\image");
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var3 + "bbs\\image\\background.gif", "Image\u0000", this.Subdirectory + "\\image");
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var3 + "bbs\\image\\clear.gif", "Image\u0000", this.Subdirectory + "\\image");
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var3 + "bbs\\image\\expand.gif", "Image\u0000", this.Subdirectory + "\\image");
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var3 + "bbs\\image\\listby.gif", "Image\u0000", this.Subdirectory + "\\image");
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var3 + "bbs\\image\\newmessage.gif", "Image\u0000", this.Subdirectory + "\\image");
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var3 + "bbs\\image\\next.gif", "Image\u0000", this.Subdirectory + "\\image");
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var3 + "bbs\\image\\previous.gif", "Image\u0000", this.Subdirectory + "\\image");
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var3 + "bbs\\image\\reload.gif", "Image\u0000", this.Subdirectory + "\\image");
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var3 + "bbs\\image\\reply.gif", "Image\u0000", this.Subdirectory + "\\image");
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var3 + "bbs\\html\\error-char.html", "HTML\u0000", this.Subdirectory + "\\html");
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var3 + "bbs\\html\\error.html", "HTML\u0000", this.Subdirectory + "\\html");
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var3 + "bbs\\html\\success.html", "HTML\u0000", this.Subdirectory + "\\html");
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var3 + "bbs\\html\\url-only-char.html", "HTML\u0000", this.Subdirectory + "\\html");
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var3 + "bbs\\html\\urlreply.html", "HTML\u0000", this.Subdirectory + "\\html");
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var3 + "bbs\\message\\bbs-data.original", "HTML\u0000", this.Subdirectory + "\\message");
- this.cam.SetPublishAssetMode(this.assetControl[this.assetCount], 452);
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var3 + "bbs\\message\\zero.counter", "HTML\u0000", this.Subdirectory + "\\message");
- this.cam.SetPublishAssetMode(this.assetControl[this.assetCount], 452);
- this.assetControl[++this.assetCount] = this.cam.AddAsset(this.Subdirectory + "\\message\\", "SubDir\u0000", "");
- this.cam.SetPublishAssetMode(this.assetControl[this.assetCount], 455);
- if (this.UnixWindows.compareTo("Windows") == 0) {
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var3 + "bbs\\cgi-bin-NT\\bbs-submit.cgi", "CGI\u0000", this.Subdirectory + "\\cgi-bin");
- this.cam.SetPublishAssetMode(this.assetControl[this.assetCount], 453);
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var3 + "bbs\\cgi-bin-NT\\submit-bbs-form.cgi", "CGI\u0000", this.Subdirectory + "\\cgi-bin");
- this.cam.SetPublishAssetMode(this.assetControl[this.assetCount], 453);
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var3 + "bbs\\cgi-bin-NT\\Buf.dll", "CGI\u0000", this.Subdirectory + "\\cgi-bin");
- this.cam.SetPublishAssetMode(this.assetControl[this.assetCount], 453);
- } else if (this.UnixWindows.compareTo("Unix") == 0) {
- DFile var4 = new DFile();
- DFile var5 = new DFile();
- var5.Open(var3 + "bbs\\cgi-bin-Unix\\config", 0);
- var4.Open(var3 + "bbs\\cgi-bin\\config", 4097);
- var4.WriteString("#!" + this.PerlPath + "\n", -1);
- var4.WriteString(var5.ReadString(10000), -1);
- var4.Close();
- var5.Close();
- var5.Open(var3 + "bbs\\cgi-bin-Unix\\submit-bbs-form.cgi", 0);
- var4.Open(var3 + "bbs\\cgi-bin\\submit-bbs-form.cgi", 4097);
- var4.WriteString("#!" + this.PerlPath + "\n\n", -1);
- var4.WriteString(var5.ReadString(20000), -1);
- var4.Close();
- var5.Close();
- var5.Open(var3 + "bbs\\cgi-bin-Unix\\bbs-submit.cgi", 0);
- var4.Open(var3 + "bbs\\cgi-bin\\bbs-submit.cgi", 4097);
- var4.WriteString("#!" + this.PerlPath + "\n", -1);
- var4.WriteString(var5.ReadString(20000), -1);
- var4.Close();
- var5.Close();
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var3 + "bbs\\cgi-bin\\bbs-submit.cgi", "CGI\u0000", this.Subdirectory + "\\cgi-bin");
- this.cam.SetPublishAssetMode(this.assetControl[this.assetCount], 453);
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var3 + "bbs\\cgi-bin\\config", "CGI\u0000", this.Subdirectory + "\\cgi-bin");
- this.cam.SetPublishAssetMode(this.assetControl[this.assetCount], 453);
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var3 + "bbs\\cgi-bin\\submit-bbs-form.cgi", "CGI\u0000", this.Subdirectory + "\\cgi-bin");
- this.cam.SetPublishAssetMode(this.assetControl[this.assetCount], 453);
- if (!this.AdminTool) {
- var5.Open(var3 + "bbs\\admin-bin-Unix\\deleteMessage.cgi", 0);
- var4.Open(var3 + "bbs\\admin-bin\\deleteMessage.cgi", 4097);
- var4.WriteString("#!" + this.PerlPath + "\n", -1);
- var4.WriteString(var5.ReadString(10000), -1);
- var4.Close();
- var5.Close();
- var5.Open(var3 + "bbs\\admin-bin-Unix\\resetBBS.cgi", 0);
- var4.Open(var3 + "bbs\\admin-bin\\resetBBS.cgi", 4097);
- var4.WriteString("#!" + this.PerlPath + "\n\n", -1);
- var4.WriteString(var5.ReadString(20000), -1);
- var4.Close();
- var5.Close();
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var3 + "bbs\\admin-bin\\deleteMessage.cgi", "CGI\u0000", this.Subdirectory + "\\admin-bin");
- this.cam.SetPublishAssetMode(this.assetControl[this.assetCount], 453);
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var3 + "bbs\\admin-bin\\resetBBS.cgi", "CGI\u0000", this.Subdirectory + "\\admin-bin");
- this.cam.SetPublishAssetMode(this.assetControl[this.assetCount], 453);
- }
- }
-
- }
-
- void OnDropOK() {
- this.cam.InsertScript("bbs_script_layout", this.getJavaScript());
- onlyYou = 1;
- }
-
- public void onDrop(IDLayout var1, IDRect var2, int var3) {
- if (var3 == 1) {
- if (this.CheckTwoInstancesError()) {
- return;
- }
-
- this.assetControl = new int[50];
- int var4 = 0;
-
- do {
- this.assetControl[var4] = 0;
- ++var4;
- } while(var4 < 50);
-
- String var8 = this.codeBase;
- this.Subdirectory = "bbs";
- this.Title = "NetObjects BBS";
- this.UnixWindows = "Windows";
- this.AdminTool = true;
- this.PerlPath = "/usr/local/bin/perl";
- this.cdp = new DDrawPicture();
- DImage var5 = new DImage();
- var5.setImageFile(var8 + "bbs\\image\\BBSComp.gif");
- IDSize var6 = var5.getSize();
- this.cdp.setImageFile(var8 + "bbs\\image\\BBSComp.gif");
- this.cdp.SetPositionRect(var2.getLeft(), var2.getTop(), var2.getLeft() + var6.getWidth(), var2.getTop() + var6.getHeight());
- this.cdp.setStretch(1);
- this.idScript = this.cam.AddAsset("bbs_script_layout", "Java Script\u0000", "");
- var1.AddObject(this.cdp);
- this.OnDropOK();
- } else if (var3 == 3) {
- if (this.CheckTwoInstancesError()) {
- return;
- }
-
- this.OnDropOK();
- }
-
- }
-
- public void onInspect(CStringArray var1, CStringArray var2) {
- if (this.onlyYouInvalid != 1) {
- var1.Set("Subdirectory");
- var2.Set("String\u0000");
- var1.Set("Page Title");
- var2.Set("String\u0000");
- var1.Set("Publish to");
- var2.Set("Set(Windows|Unix)");
- var1.Set("Perl Path for Unix");
- var2.Set("String\u0000");
- }
- }
-
- boolean CheckTwoInstancesError() {
- if (onlyYou == 1) {
- DMessageBox var1 = new DMessageBox();
- var1.Warnning("Only one BBS Component is allowed per NOD file. Please delete the extra BBS Components.");
- this.onlyYouInvalid = 1;
- return true;
- } else {
- return false;
- }
- }
- }
-